Google ColabとGitHubの連携
from 2025-12-13
モチベーション
機械学習の勉強をGoogle ColabとGoogle Drive上のJupyter notebookでやっており、Jupyter notebookの履歴管理をしたい
https://git-scm.com/book/en/v2
https://www.gesw.org/memo/ColabGitHubVSCode.html
履歴管理の面であまり複雑にしたくないということと書いたものをこまめに保存したいということが両立しません。それだけでなく、毎回保存した GitHub 上のファイルを新規のタブとして開いてくれてしまいます。煩わしく感じます。
これ!ローカルにおいてopen in colabが正解か?結局コラボのリソース使うためにはローカルに置くのは無理なのかな?
無理です。
https://programmingforever.hatenablog.com/entry/2024/08/01/131311
思ってたのに近い(たぶんローカルにクローンしたリポジトリで作業できる)
出先なので帰ったらやってみる
この方法がよさげ
ローカルでの環境構築をスキップできるのがColabの良さの一つで、Colabで使っていたnotebookをローカルで動かそうとするとまた面倒な作業がいる。今はやりたくない
from 2025-12-12
Google ColabとGitHubの連携
google drive上のnotebookのバージョン管理がgitで便利になると聞いてgithubにファイルをアップロードしてみた
今まではdriveにぜんぶ置いてcolabで作業してた
GitHub上のファイル
webのcolabで開いて、保存したければGitHubに直接commitできるが自動保存機能がないので自分のPCのディレクトリにクローンしてvscodeで作業することにした
しかし結局colabのリソースをvscodeで使うにはcolabのローカルにgithubのリポジトリをcloneしてそこで作業することになるからローカルにならなくて意味なかったわ
drive上だとバージョン管理がしづらいからGitHubに置いたほうがマシなのかな?
driveでも「版を固定して保存」できるし、、、それ以上の高度な操作をする予定はない。
driveに置いてたほうが自動保存あるから良いのでは
でもどこでパラメータ変えたか等がごちゃごちゃになる
版を固定して保存でいいのでは
自動保存とこれが混ざってるのが気持ち悪い
コミット単位で履歴を残したいかどうか
一度これ(webのcolabで開いて、保存したければGitHubに直接commit)でやってみるか
エディタ側に自動保存ないのが致命的では
メモ
GitHubとColabの公式連携機能
GitHubにあるipynb形式のファイルをColabで開いて変更をpushできる
URL生成用の公式拡張機能もある
colab-github-demo.ipynb(公式)
ただし一次的な場所にコピーされるので自動保存等はなく(pushして初めて保存される)、おそらくちょい機能
Google Drive上のnotebookをGitHubのリポジトリにコピーできる
https://gyazo.com/6fb4fef3ab5a0cfc27e29404f01a5d1d
「GitHubにコピーを保存」機能
同名のファイルを2回以上ここからpushするとGitHub上に更新履歴が保存される
GitHubの連携はGUIで認証すれば済むのでtoken取得は不要
GitHub上で専用リポジトリを作成する必要がある
branchも
GitHubにGoogle Colaboratoryで作成したファイルのコピーを保存する方法|まつけん
そもそも「版を保存して固定」でほぼ同じことができる
notebook単体でしかpushできないので、repo全体をgitで管理している場合、それと衝突しそうだけど、そもそもそういう使い方は想定されてなくて、notebook単体の履歴管理専用のリポジトリとbranchを用意してそこにpushしていくってことだよね?
from 2025-12-14
Google ColabとGitHubの連携
colab使いたいならGoogle driveに置けが正解なのか結局
GitHubのprivate repoにあるcsvファイルを読み込むなどしちめんどうなことをすることになった
さすがにcsvデータはgoogle driveに置いてmountして使うのが楽だ。認証はGUIでできる
履歴管理とかいらんし
notebookのほうの履歴管理
本体をdriveに置く
適宜GitHubにpush
ローカルにcloneしたいならGitHub for Desktopでできる
脱Colabしたい
一時的に重い計算を投げたいときだけ使えばいいのでは